package Task_010404;

import java.util.List;
import java.util.Scanner;

public class View {

    private Scanner input = new Scanner(System.in);
    private Flight f = new Flight();
    private Dao d = new DaoImpl();

    /**
     * 菜单
     * @return
     */
    public int menu() {
        System.out.println("请选择操作：");
        System.out.println("1、查询所有航班");
        System.out.println("2、按起飞时间查询");
        System.out.println("3、按目的地查询");
        System.out.println("4、删除航班信息");
        System.out.println("5、更新航班信息");
        System.out.println("6、离开系统");

        int menu = -1;
        String text = input.nextLine();

        try {
            menu = Integer.parseInt(text);
        } catch (Exception e) {
        }
        if (menu<1 || menu>6) {
            System.out.println("您的输入有误");
        }

        return menu;
    }


    /**
     * 查询所有航班
     */
    public void findAll() {
        List<Flight> flightList = d.findAll();
        int count = 0;

        System.out.println("所有航班信息为：");
        System.out.println("\t编号 \t航班号 \t目的地 \t起飞日期");

        for(Flight f : flightList) {
            count++;
            System.out.println("\t"+f.getId() +" \t\t"+ f.getNumber() +" \t"+f.getDest() +" \t"+f.getDate());
        }

        if (count == 0) {
            System.out.println("暂无航班信息");
        }
        System.out.println();
    }


    /**
     * 按起飞日期查询
     * @return
     */
    public String date() {
        System.out.println("请输入航班的起飞日期：");
        String date = input.nextLine();
        return date;
    }

    public void findByDate(String date) {
        List<Flight> flightList = d.findByDate(date);
        int count = 0;

        System.out.println("航班信息有：");
        System.out.println("\t编号 \t航班号 \t目的地 \t起飞日期");

        for (Flight f : flightList) {
            count++;
            System.out.println("\t"+f.getId() +" \t\t"+ f.getNumber() +" \t"+f.getDest() +" \t"+f.getDate());
        }

        if (count == 0) {
            System.out.println("暂无航班信息");
        }
        System.out.println();
    }


    /**
     * 按目的地查询
     * @return
     */
    public String dest() {
        System.out.println("请输入航班的目的地：");
        String dest = input.nextLine();
        return dest;
    }

    public void findByDest(String dest) {
        List<Flight> flightList = d.findByDest(dest);
        int count = 0;

        System.out.println("航班信息有：");
        System.out.println("\t编号 \t航班号 \t目的地 \t起飞日期");

        for (Flight f : flightList) {
            count++;
            System.out.println("\t"+f.getId() +" \t\t"+ f.getNumber() +" \t"+f.getDest() +" \t"+f.getDate());
        }

        if (count == 0) {
            System.out.println("暂无航班信息");
        }
        System.out.println();
    }


    /**
     * 按编号查询
     * @return
     */
    public String id() {
        System.out.println("请输入航班的编号：");
        String id = input.nextLine();
        return id;
    }

    public int findById(String id) {
        List<Flight> flightList = d.findById(id);
        int count = 0;

        System.out.println("航班信息有：");
        System.out.println("\t编号 \t航班号 \t目的地 \t起飞日期");

        for (Flight f : flightList) {
            count++;
            System.out.println("\t"+f.getId() +" \t\t"+ f.getNumber() +" \t"+f.getDest() +" \t"+f.getDate());
        }

        if (count == 0) {
            System.out.println("暂无航班信息");
        }
        System.out.println();
        return count;
    }


    /**
     * 删除航班信息
     * @return
     */
    public int del(){
        System.out.println("是否确认删除");
        System.out.println("1、是");
        System.out.println("2、否");

        int menu = -1;
        String text = input.nextLine();

        try {
            menu = Integer.parseInt(text);
        } catch (Exception e) {
        }
        if (menu<1 || menu>2) {
            System.out.println("您的输入有误");
        }

        return menu;
    }


    /**
     * 更新航班信息
     * @return
     */
    public Flight mod() {
        System.out.println("请输入新的航班号");
        String number = input.nextLine();
        f.setNumber(number);

        System.out.println("请输入新的目的地");
        String dest = input.nextLine();
        f.setDest(dest);

        System.out.println("请输入新的起飞日期");
        String date = input.nextLine();
        f.setDate(date);

        return f;
    }


    /**
     * 操作成功
     */
    public void success() {
        System.out.println("操作成功\n");
    }

}
